Pythonではswitchやcaseがない!代わりに使える方法とは

您所在的位置:网站首页 case when python Pythonではswitchやcaseがない!代わりに使える方法とは

Pythonではswitchやcaseがない!代わりに使える方法とは

#Pythonではswitchやcaseがない!代わりに使える方法とは | 来源: 网络整理| 查看: 265

プログラミングには必須とも言える条件分岐の一つに、switch文があります。switchはいくつかの条件によって処理を分岐させ、異なる処理を行なう場合に使用する条件分岐の方法で、多くのプログラミング言語に実装されています。

しかしPythonにはif文で充分対処できるとして、switch文は実装されていません。そこで今回は、switchの代わりに使える条件分岐と処理の書き方について解説していきます。

Pythonにswitch文はない!

Pythonにはswitch文が実装されていません。その理由として、公式ドキュメントでは「if...elif...else」文で同じ処理ができるため、switch文を採用していないと解説しています。

Pythonでも、switch文を採用する場合の構文に関する提案は複数ありましたが、未だ合意が得られていません。そのため、Pythonでは現時点ではswitch文を実装せず、代わりにif...elif...else文で条件分岐を記述するか、もしくはdictionary(辞書)を使用する方法を採用しています。

if...elif...elseは比較的少ない選択肢に、辞書は非常に大きな数の選択肢から選ぶ時に主に使用されています。

なお、switch文の代わりとなるif文の書き方については、こちらの記事も併せてご確認ください。【Python入門】if文で条件分岐する書き方をサンプルコードと併せて解説

Pythonでswitchにかわりになるものとは

前項で解説したとおり、Pythonではif文がswitch文と同じ処理が可能であることを理由にswitch文が実装されていません。公式ドキュメントでは、Pythonにおける条件分岐はif文で記述することが推奨されています。

実際にサンプルコードを実行しながら、switch文の代わりになる記述方法を見ていきましょう。

if文を使う

Pythonではswitch文を実装しない理由として、if...elif...else文で同じ処理が可能であることを挙げています。そこでif文で実際に複数の条件分岐を持つコードを記述してみましょう。

次のサンプルコードでは、入力された値を評価し、4つの条件に分岐しています。このサンプルではまず、inputの入力値をstr型からint型に変換し、ifから順に条件式を評価しています。ifでは変数valueが0であった場合、「無料です」と表示する処理を実行します。以降、elifを順に評価し、すべての条件式がfalseだった場合、elseの処理を実行します。

このように、if文でswitch文の機能を表現する場合、複数の行に渡ってelifを追加して記述します。

value = input('0から1000の価格を入力してください') value = int(value) if value == 0: print('無料です') elif value


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3